package algocity.modelo.entidad;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class PaqueteDeServicios {

	List<Servicio> servicios;

	public PaqueteDeServicios(){
		servicios = new ArrayList<Servicio>();
	}
	
	public boolean incluidoEn(PaqueteDeServicios otroPaquete) {
		boolean incluido = true;
		Iterator<Servicio> it = this.servicios.iterator();
		while (it.hasNext() && incluido) {
			incluido = otroPaquete.contiene(it.next());
		}
		return incluido;
	}

	public boolean contiene(Servicio unServicio){
		boolean incluido = false;
		Iterator<Servicio> it = this.servicios.iterator();
		while (it.hasNext() && !incluido) {
			incluido = it.next().contiene(unServicio);
		}
		return incluido;

//		int pos = servicios.indexOf(unServicio);
//		if (pos < 0) return false;
//		else return servicios.get(pos).contiene(unServicio);
	}
	
	public void agregarServicio(Servicio unServicio) {
//		int pos = servicios.indexOf(unServicio);
//		if (pos >= 0) servicios.get(pos).agregarCantidad(unServicio.getCantidad());
//		else 
			servicios.add(unServicio);
	}
	
	public int cantidadDeServicios(){
		return this.servicios.size();
	}

	public void consumir(Servicio servicio) {
		int pos = servicios.indexOf(servicio);
		servicios.get(pos).consumir(servicio.getCantidad());
		
//		boolean consumido = false;
//		Iterator<Servicio> it = this.servicios.iterator();
//		while (it.hasNext() && !consumido) {
//			consumido = it.next().contiene(servicio);
//		}
	}
}
